package com.dianshang.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.dianshang.pojo.business.Ad;
import com.dianshang.service.business.AdService;
import com.dianshang.service.goods.CategoryService;
import com.dianshang.vo.CategoryVO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

/**
 * 实现首页 广告轮播图/分类导航 的渲染
 */
@Controller
public class IndexController {

    @Reference
    private AdService adService;

    @Reference
    private CategoryService categoryService;

    @RequestMapping("/index")
    public String index(Model model){ // localhost:9102/index.do
        // 查询首页位置,轮播图广告的数据(Thymeleaf实现)
        // 将轮播图加载到缓存中
        List<Ad> ad = adService.findIndexAll();
        /**
         * 查询商品分类的数据——》1级分类包含2级分类,2级分类包含3级分类(Thymeleaf实现)
         * 将商品分类加载到缓存中
         * Map——>Hash类型
         * CategoryVO——>String类型
         */
        List<Map> category = categoryService.findCategoryList();
        // List<CategoryVO> category = categoryService.findCategoryList();
        // 将查询到的数据封装到model中
        model.addAttribute("ad",ad);
        model.addAttribute("category",category);
        return "index"; // templates/index.html
    }

    // 同步Redis中数据
    @RequestMapping("/preLoadCategoryList")
    @ResponseBody
    public void preLoadCategoryList(){
        categoryService.preLoadIndexCategoryList();
    }

}